package basic;

import javax.validation.constraints.NotNull;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;

public class JavaType {
    /**
     * 1 primitive type:  NumaricType  BooleanType
     * NumaricType: IntegralType FloatingPointType
     * IntegralType:  byte short int long char
     * FloatingPointType: float double
     */
    public JavaType(){

    }

    /**
     * Runtime Data Area
     * Frame 或栈帧、方法栈
     * 一个线程对应一个 JVM Stack。JVM Stack 中包含一组 Stack Frame
     * StackOverFlow Exception
     * OutOfMemery
     * create frame
     */
    public void aa(){

    }
    @Target(ElementType.TYPE_USE) @interface MyAnnotation {}
    /**
     * reciever parameter
     * formal parameters
     */
    public void test(@NotNull JavaType this,@NotNull StringTest tt) {
        System.out.println(tt);
    }
    public class List< T> {
    }

    public static void main(StringTest[] args) {
        JavaType javaType = new JavaType();
        System.out.println(javaType);
        javaType.test(null);
    }
}
